package com.hello.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.hello.common.core.annotation.Excel;
import com.hello.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 设备库存对象 rental_device_inventory
 * 
 * @author hello
 * @date 2025-07-20
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class RentalDeviceInventory extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 库存ID */
    private Long inventoryId;

    /** 设备ID */
    @Excel(name = "设备ID")
    private Long deviceId;

    /** 总数量 */
    @Excel(name = "总数量")
    private Long totalQuantity;

    /** 可用数量 */
    @Excel(name = "可用数量")
    private Long availableQuantity;

    /** 已租出数量 */
    @Excel(name = "已租出数量")
    private Long rentedQuantity;

    /** 维修中数量 */
    @Excel(name = "维修中数量")
    private Long maintenanceQuantity;

    /** 损坏数量 */
    @Excel(name = "损坏数量")
    private Long damagedQuantity;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdTime;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedTime;

    public void setInventoryId(Long inventoryId) 
    {
        this.inventoryId = inventoryId;
    }

    public Long getInventoryId() 
    {
        return inventoryId;
    }
    public void setDeviceId(Long deviceId) 
    {
        this.deviceId = deviceId;
    }

    public Long getDeviceId() 
    {
        return deviceId;
    }
    public void setTotalQuantity(Long totalQuantity) 
    {
        this.totalQuantity = totalQuantity;
    }

    public Long getTotalQuantity() 
    {
        return totalQuantity;
    }
    public void setAvailableQuantity(Long availableQuantity) 
    {
        this.availableQuantity = availableQuantity;
    }

    public Long getAvailableQuantity() 
    {
        return availableQuantity;
    }
    public void setRentedQuantity(Long rentedQuantity) 
    {
        this.rentedQuantity = rentedQuantity;
    }

    public Long getRentedQuantity() 
    {
        return rentedQuantity;
    }
    public void setMaintenanceQuantity(Long maintenanceQuantity) 
    {
        this.maintenanceQuantity = maintenanceQuantity;
    }

    public Long getMaintenanceQuantity() 
    {
        return maintenanceQuantity;
    }
    public void setDamagedQuantity(Long damagedQuantity) 
    {
        this.damagedQuantity = damagedQuantity;
    }

    public Long getDamagedQuantity() 
    {
        return damagedQuantity;
    }
    public void setCreatedTime(Date createdTime) 
    {
        this.createdTime = createdTime;
    }

    public Date getCreatedTime() 
    {
        return createdTime;
    }
    public void setUpdatedTime(Date updatedTime) 
    {
        this.updatedTime = updatedTime;
    }

    public Date getUpdatedTime() 
    {
        return updatedTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("inventoryId", getInventoryId())
            .append("deviceId", getDeviceId())
            .append("totalQuantity", getTotalQuantity())
            .append("availableQuantity", getAvailableQuantity())
            .append("rentedQuantity", getRentedQuantity())
            .append("maintenanceQuantity", getMaintenanceQuantity())
            .append("damagedQuantity", getDamagedQuantity())
            .append("createdTime", getCreatedTime())
            .append("updatedTime", getUpdatedTime())
            .toString();
    }
}
